package com.hilog.common;

import java.util.UUID;

/**
 * TraceId生成器
 */
public class TraceIdGenerator {

    private static final String TRACE_PREFIX = TraceConstants.TRACE_PREFIX;

    /**
     * 生成TraceId
     * @return 生成的TraceId
     */
    public static String generateTraceId() {
        return UUID.randomUUID().toString().replace("-", "").substring(0, TraceConstants.DEFAULT_TRACE_ID_LENGTH);
    }

    /**
     * 生成带前缀的TraceId
     * @param prefix 前缀
     * @return 生成的TraceId
     */
    public static String generateTraceId(String prefix) {
        if (prefix == null || prefix.trim().isEmpty()) {
            return generateTraceId();
        }
        return prefix + "-" + UUID.randomUUID().toString().replace("-", "").substring(0, TraceConstants.DEFAULT_TRACE_ID_LENGTH);
    }

    /**
     * 验证TraceId格式
     * @param traceId TraceId
     * @return 是否有效
     */
    public static boolean isValidTraceId(String traceId) {
        return traceId != null && !traceId.trim().isEmpty() && traceId.length() >= TraceConstants.DEFAULT_TRACE_ID_LENGTH;
    }
} 